﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using ServiceDeskUNAB.Modelo;

namespace ServiceDeskUNAB.Controlador
{
    class RolControlador
    {
        private static RolControlador instance;


        private RolControlador()
        {           
        }

        public static RolControlador Instance
        {
            get
            {
                if (instance == null)
                {
                    instance = new RolControlador();
                }
                return instance;
            }
        }


        public bool Ingresar(Rol r)
        {

            try
            {
                SqlCommand com = new SqlCommand();


                com.CommandText = "INSERT INTO Rol" +
                    "(ID_Permiso, Nombre_Rol)" + "VALUES" +
                    "(@ID_Permiso, @Nombre_Rol)";

                //com.Parameters.AddWithValue("@ID_Rol", ID_Rol);
                com.Parameters.AddWithValue("@ID_Permiso", r.IdPermiso);
                com.Parameters.AddWithValue("@Nombre_Rol", r.NombreRol);


                com.Connection = Conexion.Instance.Con;
                SqlDataReader ejecutar = com.ExecuteReader();
                Conexion.Instance.Con.Close();
                return true;
            }
            catch (Exception e)
            {
                Conexion.Instance.Con.Close();
                Console.WriteLine(e.Message);
                return false;
                throw;
            }

        }
        public bool Modificar(int ID_Rol, int ID_Permiso, string Nombre_Rol)
        {
            try
            {
                SqlCommand com = new SqlCommand();


                com.CommandText = "UPDATE Rol " +
                    "SET ID_Permiso = @ID_Permiso, Nombre_Rol = @Nombre_Rol" +
                    "WHERE ID_Rol = @ID_Rol";



                com.Parameters.AddWithValue("@ID_Rol", ID_Rol);
                com.Parameters.AddWithValue("@ID_Permiso", ID_Permiso);
                com.Parameters.AddWithValue("@Nombres_Rol", Nombre_Rol);

                com.Connection = Conexion.Instance.Con;
                SqlDataReader ejecutar = com.ExecuteReader();
                // TODO terminar esto

                Conexion.Instance.Con.Close();
                return true;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Conexion.Instance.Con.Close();
                return false;
                throw;
            }
        }
        public bool Eliminar(string ID_Rol)
        {
            bool resultado = false;
            try
            {
                SqlCommand com = new SqlCommand("DELETE FROM Rol WHERE ID_Rol = '" + ID_Rol + "')");
                SqlDataReader ejecutar = com.ExecuteReader();
                if (ejecutar.Read())
                {
                    resultado = true;
                }
                Conexion.Instance.Con.Close();
                return resultado;
            }
            catch (Exception)
            {
                Conexion.Instance.Con.Close();
                return resultado;
                throw;
            }
        }
    }
    
}
